package de.pyrazol.starshipRPG;

import java.util.LinkedList;
import java.util.List;
import java.util.Random;

/**
 * Ein menschlicher oder KI-gesteuerter
 * Spieler der Partie
 */
public class Player {

	/** Name des Spielers */
	private String name;
	
	/** Schiff des Spielers */
	private List<Starship> ships;
	
	/**
	 * Konstruktor mit festgelegtem Namen und
	 * zuf&auml;lliger Auswahl des Schiffes
	 * 
	 * @param n Spielername
	 */
	public Player(String n) {
		this.name = n;
		selectRandomShip();
	}
	
	/**
	 * Konstruktor mit festgelegtem Namen und
	 * festgelegtem Schiff
	 * 
	 * @param n Spielername
	 * @param s Schiff
	 */
	public Player(String n, Starship s) {
		this.name = n;
		this.ships = new LinkedList<Starship>();
		this.ships.add(s);
	}
	
	/**
	 * Erzeugt die Liste der Schiffe und
	 * w&auml;hlt zuf&auml;llig ein erstes
	 * Schiff f&uuml;r den Spieler aus 
	 */
	public void selectRandomShip() {
		// Erzeuge die Liste der Schiffe
		this.ships = new LinkedList<Starship>();
		// Wahle zufaellig einen Schiffstyp aus und erzeuge das Objekt
		List<String> shipTypeList = Starship.getTypeList();
    	int random = (new Random()).nextInt(shipTypeList.size());
    	Starship firstShip = Starship.createShip(shipTypeList.get(random));
    	// Fuege das Schiff zur Liste hinzu
    	ships.add(firstShip);
	}
	
	/**
	 * Liefert den Namen des Spielers zur&uuml;ck
	 */
	public String getName() {
		return this.name;
	}
	
	/**
	 * Liefert die Liste der Schiffe des Spielers zur&uuml;ck
	 * 
	 * return Liste der Schiffe
	 */
	public List<Starship> getShips() {
		return this.ships;
	}
	
}
